非線形回帰分析 - 18

指数関数のパラメータの推定

a1,をシフト

\(\Large \displaystyle y_i = a_0 \ Exp (- a_1 x_i) + a_2 \)

 

a0       10.994 10.493 10.494 10.318 10.164 10.025 9.896 9.777 9.666
a1       0.295 0.345 0.395 0.445 0.495 0.545 0.595 0.645 0.695
δ       -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
a2       -0.679 0.000 0.279 0.612 0.884 1.109 1.297 1.457 1.592
                         
i x y   \( \hat{y} \)
1 0 10   10.315 10.493 10.774 10.930 11.048 11.133 11.193 11.233 11.258
2 2 4   5.420 5.268 5.046 4.853 4.664 4.482 4.311 4.150 4.002
3 3 2   3.864 3.732 3.492 3.331 3.189 3.066 2.960 2.870 2.795
4 4 1   2.705 2.644 2.445 2.355 2.290 2.244 2.215 2.199 2.193
5 6 0.5   1.199 1.328 1.263 1.329 1.407 1.491 1.577 1.661 1.742
6 9 0.1   0.097 0.472 0.580 0.801 1.002 1.183 1.344 1.486 1.611
         
S (\(y_i - \hat{y} \)の平方和)       2.988 1.704 0.819 0.381

0.2531
(Se)

0.357 0.626 1.008 1.462
dS (Seとの差分)       2.734 1.451 0.566 0.128 0 0.104 0.373 0.755 1.208
                         

 

・残差平方和

推定値からの残差

\(\Large \displaystyle Se = \sum_{i=1}^{n} \left[ y_i -\hat{a_0} \ Exp(- \hat{a_1} \ x_i) - \hat{a_2} \right]^2 \)

a0をシフトさせたときの,推定値からの残差

\(\Large \displaystyle Se = \sum_{i=1}^{n} \left[ y_i -\hat{a_0} \ Exp(- a_1 \ x_i) -\hat{a_2} \right]^2 \)

であり,a1を,δ,だけシフトさせて,固定し,その際のa0, a2の推定値をソルバーで推定しました.

dS,を見ていただけるとわかるように,推定値,Seが一番小さく,今回は,左右非対称に増加していることがわかります.

グラフ化すると,

のように,二乗+定数できれいに近似できます.

二次曲線の近似においてもきれいに近似でき,

\(\Large \displaystyle y = 0.2531 + 49.1098 \ \delta^2 \)

ここで,分散値は,

・分散

\(\Large \displaystyle Ve = \frac{1}{n-3} \sum_{i=1}^{n} \left[ y_i -\hat{a_0} \ Exp(- \hat{a_1} \ x_i) \right]^2 = \frac{Se}{n-3} = \frac{0.2531}{6-3} = 0.08438 \)

であり(a0,a1,a2の二つのパラメータが3つあるので,自由度は,n-3),

\(\Large \displaystyle 49.109 \ \delta^2 = 0.08438 \)

となるδがSEとなるので,

\(\Large \displaystyle \delta^2 = \frac{ 0.08438}{49.109} =0.00172 \)

\(\Large \displaystyle SE_{a_0} = \sqrt{\delta^2} =\color{red}{0.04145} \)

と推定できます.

 

・Rによる推定

Rでの近似を行ってみると,

プログラムは,

xx <- c(0,2,3,4,6,9)
yy <- c(11,5,3,2,1.5,1.1)
plot(xx,yy)
fm<-nls(yy~a0*exp(-a1*xx)+a2,start=c(a0=10,a1=0.5,a2=1),trace=TRUE)
summary(fm)

で,結果は,

Parameters:
Estimate Std. Error t value Pr(>|t|)
a0 10.16402 0.37708 26.954 0.000112 ***
a1 0.49456 0.04408 11.219 0.001518 **
a2 0.88393 0.26931 3.282 0.046348 *

となり,Kyplotにおいても,

推定値 標準誤差(SE)
A1 10.16401 0.377081
A2 0.494562 0.044083
A3 0.883926 0.269308

と同じ結果となり,今回の推定値と,ほぼ一致,します.

微妙に異なるのが気になりますが....

「統計解析の初歩」,の「1.2 非線形最小2乗法の基本的な考え方」には,

δのずらした値0.5 を変えると結果は異なり、近似標準誤差の精度が変わる
統計パッケージにより、近似標準誤差の値は幾分異なる

とあります.ここで,”0.5”,がどこから出てきたかはわかりません.そもそも横軸(x軸)の範囲に依存しちゃいますし..

そこで,σをとる値(±での平均値)でどう推定値が変わるかを調べてみました.その結果が,

とどのδでもRなどの推定値より下回っていました....謎です...

次に,指数関数+baseのbaseのパラメータ,a2について,確認してましょう.

 

l tr